home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / TUTORIAL / 0855.ZIP / 87ERROR.DOC < prev    next >
Text File  |  2000-01-02  |  2KB  |  33 lines

  1.     The program 87ERROR.COM is a simple 8087 error interrupt handler for
  2.  the IBM Personal Computer. To install the error handler just run 87ERROR.COM
  3.  from DOS (ver. 1.1, 2.XX). When an error interrupt is generated by the 8087
  4.  a letter in reverse video will appear in the upper right hand corner of the
  5.  monochrome display. The letter will indicate the general type of error which
  6.  caused the 8087 to generate an interrupt as below in the table:
  7.  
  8.     D --------- Denormalized operand
  9.     Z --------- Divide by zero
  10.     O --------- Overflow
  11.     U --------- Underflow
  12.     P --------- Precision error
  13.  
  14.     The interrupt pin on the 8087 is connected with the parity checking
  15.  logic on the mother board. Because of this fact the program needs to jump to
  16.  the ROM BIOS just in case the NMI (Non Maskable Interrupt) was generated by a
  17.  parity error and not by the 8087. The address of the jump at the end of the
  18.  interrupt handler "JMP FAR PTR ROMADR" may need to be changed depending on
  19.  what version of the IBM ROM BIOS you have.
  20.  
  21.     The correct address can be found at 0H:8H to 0H:0BH for the jump to the
  22.  IBM ROM BIOS. The first two memory locations contain the offset and the next
  23.  two memory locations contain the segment address. Change the address on the
  24.  line "ROM    SEGMENT AT 0F000H" to the segment address just found. Then
  25.  change the address on the line "    ORG    0E2C3H" to the offset address
  26.  just found. You can now generate a new 87ERROR.COM file from the new
  27.  87ERROR.ASM source file.
  28.  
  29.                         Leland C. Scott
  30.                         18140 Locherbie
  31.                         Birmingham, Michigan 48009
  32.                         (313) 642-9783
  33.